%pylab inline
from IPython.core.display import HTML
HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit"
value="Click here to toggle on/off the raw code."></form>''')
rc('text', usetex=True) # az abran a xticks, yticks fontjai LaTeX fontok lesznek
#from sympy.mpmath import *
import mpmath as mpmath
from scipy.integrate import * # az integráló rutinok betöltése
from ipywidgets import * # az interaktivitásért felelős csomag
import matplotlib.pyplot as plt
# Abra es fontmeretek
xfig_meret= 9 # 12 nagy abrahoz
yfig_meret= 6 # 12 nagy abrahoz
xyticks_meret= 15 # 20 nagy abrahoz
xylabel_meret= 21 # 30 nagy abrahoz
legend_meret= 21 # 30 nagy abrahoz
(Cserti József, ELTE Komplex Rendszerek Fizikája Tanszék, 2016. február)
Bose-Einstein integrál:
\begin{align} g_{s}(z) &=\frac{1}{\Gamma(s)}\,\intop_{0}^{\infty}\frac{x^{s-1}dx}{\frac{1}{z}e^{x}-1}\label{eq:g_s_z}\\[1ex] \zeta(s) &=\sum_{k=1}^{\infty}\frac{1}{k^{s}}=\frac{1}{\Gamma(s)}\,\intop_{0}^{\infty}\frac{x^{s-1}dx}{e^{x}-1} = g_s(1) \label{eq:zeta_def} \end{align}A $g_s(z)$ függvényt az irodalomban polylogaritmus függvénynek (Polylogarithm function) is nevezik, és a jelölése: $Li_s(z)$,
Npoint =200
zlist=linspace(0,1,Npoint) #mintavételezési pontok legyártása
g3p2=[]
g5p2=[]
for i in range(0,len(zlist)):
poly1=float(mpmath.polylog(1.5,1))
poly2=float(mpmath.polylog(1.5,zlist[i]))
poly3=float(mpmath.polylog(2.5,zlist[i]))
g3p2.append(poly2)
g5p2.append(poly3)
figsize(xfig_meret,yfig_meret)
plot(zlist,g3p2,label='$g_{3/2}(z)$',lw=3,color='red'),
plot(zlist,g5p2,label='$g_{5/2}(z)$',lw=3,color='blue',ls='--')
legend(loc='upper left',fontsize=legend_meret)
xlabel('$z$',fontsize=xylabel_meret)
ylabel('$g_{3/2}(z), g_{5/2}(z)$',fontsize=xylabel_meret);
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_10.eps'); # Abra kimentese
Npoint =100
Tlist_down=linspace(0.0,1,Npoint) #mintavételezési pontok legyártása
pV_down=[] # p-T gorbehez
mu_down=[]
Elist_down=[]
Slist_down=[]
cV_down=[]
kappa_S_down=[]
vhang_down=[]
cV_deriv_down=[]
for i in range(0,len(Tlist_down)):
mu_down.append(0)
zeta3p2=float(mpmath.polylog(1.5,1))
zeta5p2=float(mpmath.polylog(2.5,1))
tmp1=zeta5p2/zeta3p2
Elist_down.append(3/2*(Tlist_down[i])**(5/2)*tmp1) # energia
pV_down.append((Tlist_down[i])**(5/2)*tmp1) # pV = 2/3 E
Slist_down.append(5/2*(Tlist_down[i])**(3/2)*tmp1) # entropia
cV_down.append(15/4*Tlist_down[i]**(3/2)*tmp1)
kappa_S_down.append(3/5*(Tlist_down[i]+0.00001)**(-5/2)/tmp1)
vhang_down.append(sqrt(5/3*tmp1*(Tlist_down[i])**(5/2)))
cV_deriv_down.append(45/8*tmp1*(Tlist_down[i])**(1/2))
Npoint =100
zmin=0.3
zlist=linspace(zmin,1,Npoint) #mintavételezési pontok legyártása
Tlist_up=[]
pV_up=[]
mu_up=[]
mu_approx=[]
Elist_up=[]
Slist_up =[]
cV_up=[]
cp_up=[]
kappa_S_up=[]
kappa_T_up=[]
alpha_up=[]
cp_cV_up=[]
vhang_up=[]
cV_deriv_up=[]
epsi=0.0000000000001
for i in range(0,len(zlist)):
z=zlist[i]
zeta3p2=float(mpmath.polylog(1.5,1))
poly3p2=float(mpmath.polylog(1.5,z))
poly5p2=float(mpmath.polylog(2.5,z))
poly1p2=float(mpmath.polylog(0.5,z-epsi)) # z=1-nel ROSSZ erteket ad a polylog!!!
# Itt a vegtelen ertek a helyes.
# A hiba kijavitasa miatt irunk 'z-0.0000001'.
polym1p2=float(mpmath.polylog(-0.5,z-epsi))
tmp1=(zeta3p2/poly3p2)**(2/3)
Tlist_up.append(tmp1) # homerseklet
mu_up.append(tmp1 * log(z)) # kemiai potencial
mu_approx.append(-(3*zeta3p2/4/sqrt(pi))**2*(tmp1-1)**2)
tmp2=3/2*tmp1*poly5p2/poly3p2 # energia
Elist_up.append(tmp2)
pV_up.append(tmp1*poly5p2/poly3p2) # pV = 2/3 E
Slist_up.append(5/2*poly5p2/poly3p2-log(z)) # entropia
cV_up.append(15/4*poly5p2/poly3p2-9/4*poly3p2/poly1p2) # c_V fajfo
cp_up.append(25/4*poly5p2**2*poly1p2/(poly3p2)**3-15/4*poly5p2/poly3p2) # c_p fajho
kappa_S_up.append(3/5*poly3p2/poly5p2/tmp1)
# kappa_S kompreszibilitas
kappa_T_up.append(poly1p2/poly3p2/tmp1)
# kappa_T kompreszibilitas
alpha_up.append((5/2*poly5p2*poly1p2/(poly3p2)**2-3/2)/tmp1)
# alpha_T hotagulasi egyutthato
cp_cV_up.append(5/3*poly5p2*poly1p2/(poly3p2)**2)
# alpha_T hotagulasi egyutthato
vhang_up.append(sqrt(5/3*poly5p2/poly3p2*tmp1))
# v_hang hangsebesseg
cV_deriv_up.append((45/8*poly5p2/poly3p2-9/4*poly3p2/poly1p2
-27/8*(poly3p2)**2 *polym1p2/(poly1p2)**3)/tmp1)
# c_V derivaltja T-szerint fajho
#print((zlist[i],tmp1,tmp2))
Tlist_egybe=concatenate((Tlist_down,Tlist_up[::-1])) # Tlist_egybe
Eklassz=[x*1.5 for x in Tlist_egybe] # Eklassz
CVklassz=[1.5 for x in Tlist_egybe] # C_V_klassz
Cpklassz=[2.5 for x in Tlist_egybe] # C_p_klassz
nslice=50 #
muapprox1=mu_approx[-nslice:] # az lista utolso 'nslice' darab tagjat tartja meg
Tapprox1=Tlist_up[-nslice:] # az lista utolso 'nslice' darab tagjat tartja meg
muapprox =muapprox1[0::5]
Tapprox = Tapprox1[0::5]
figsize(xfig_meret,yfig_meret)
legend_meret1=0.8*legend_meret
plot(Tlist_up,mu_up,label='$\mu, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_down,mu_down,label='$\mu, \,\, T<T_c$',lw=3,color='blue',ls='--')
plot(Tapprox,muapprox,label='$\mu_{k\ddot {o}z}, \,\, T>T_c$',lw=1,ls='-',marker='o',color='k',markersize=5)
legend(loc='upper right',fontsize=legend_meret1)
annotate(r'$\mu_{k\ddot {o}z}$'
,xy=(1.9,-1.2), xytext=(1.2, -2.5), arrowprops=dict(color='green',width=.5),fontsize=legend_meret)
axhline(y=0.0, xmin=0, xmax = 4, linewidth=0.6, ls='dashed', color='k')
axvline(x=1.0, ymin=0.0, ymax = 20, linewidth=2, ls='dotted', color='k')
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\frac{\mu(T)}{k_B T_c}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
ylim(-5,.5)
ax = gca()
ax.yaxis.set_label_coords(-.1, 0.53); # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_15.eps'); # Abra kimentese
# High temperature approximation
Npoint =30
tminH=2.5
tmaxH=4
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
Elist_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
Elist_approxH.append(-1/2/sqrt(2*pi*tt)+3/2*tt) # energia
figsize(xfig_meret,yfig_meret)
plot(Tlist_up,Elist_up,label='$E, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_down,Elist_down,label='$E, \,\, T<T_c$',lw=3,color='blue',ls='--')
plot(Tlist_egybe,Eklassz,color='black',lw=3,linestyle='dotted',label=r'$E_{\mathrm{klassz}}$')
plot(Tlist_High,Elist_approxH,color='green',
lw=3,linestyle='--',
label=r'$E_\mathrm{high}(t) \approx \frac{3t}{2}-\frac{1}{2\sqrt{2\pi}}\, \frac{1}{\sqrt{t}}$')
legend(loc='lower right',fontsize=legend_meret);
axvline(x=1.0, linewidth=2, ls='dotted', color='k')
xlabel(r'$t={T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\frac{E}{N k_B T_c}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
ax = gca()
ax.yaxis.set_label_coords(-.1, 0.65); # ylabel position
#title(r'$E(T)$ ', fontsize=20)
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_20.eps'); # Abra kimentese
a termikus de Broigle-hullámhossz és a kritikus térfogat.
Ha $V<V_c$, akkor $p$ nem függ $V$-től, ekkor $p_0 \sim T^{5/2}$.
Adiabata egyenlete: $p_0 V_c^{5/3}$ = állandó
Npoint =30
Vmax=9
T1=1
Vc1=3
p1=1
p2=2
Vc2=(p1/p2)**(3/5)*Vc1
Vlist1_up=linspace(Vc1,Vmax,Npoint) #mintavételezési pontok legyártása
Vlist2_up=linspace(Vc2,Vmax,Npoint) #mintavételezési pontok legyártása
Vlist1_down=linspace(0,Vc1,Npoint) #mintavételezési pontok legyártása
Vlist2_down=linspace(0,Vc2,Npoint) #mintavételezési pontok legyártása
izoterm1_up=[p1/x *Vc1 for x in Vlist1_up] # izoterma T>T_c-re
izoterm2_up=[p2/x *Vc2 for x in Vlist2_up] # izoterma T>T_c-re
izoterm1_down=[p1 for x in Vlist1_down] # izoterma T<T_c-re
izoterm2_down=[p2 for x in Vlist2_down] # izoterma T<T_c-re
Vlist_full=linspace(Vc2/2,Vmax,Npoint)
pfv=[p1*(Vc1/x)**(5/3) for x in Vlist_full] # adiabata p-V sikon
figsize(xfig_meret,yfig_meret)
plot(Vlist1_up,izoterm1_up,label='$p_1(V), \,\, T>T_c$',lw=3,color='red')
plot(Vlist2_up,izoterm2_up,label='$p_2(V), \,\, T>T_c$',lw=3,color='red')
plot(Vlist1_down,izoterm1_down,label='$p_{01}(V), \,\, T<T_c$',lw=3,color='blue',ls='--')
plot(Vlist2_down,izoterm2_down,label='$p_{02}(V), \,\, T<T_c$',lw=3,color='blue',ls='--')
plot(Vlist_full,pfv,label='$p_0 V^{5/3}=$const',lw=3,color='k',ls='dotted')
legend_meret1=0.8*legend_meret
legend(loc='upper right',fontsize=legend_meret1)
annotate(r'$V_{c1}$', xy=(1.5,2.), xytext=(Vc1,-0.35),fontsize=xylabel_meret)
annotate(r'$V_{c2}$', xy=(1.5,2.), xytext=(Vc2,-0.35),fontsize=xylabel_meret)
annotate(r'$p_{01}$', xy=(1.5,2.), xytext=(-1.2,p1),fontsize=xylabel_meret)
annotate(r'$p_{02}$', xy=(1.5,2.), xytext=(-1.2,p2),fontsize=xylabel_meret)
yfelso_scale=1.2
axvline(x=Vc1, ymin=0., ymax=p1/p2/yfelso_scale, linewidth=2, ls='dotted', color='k')
axvline(x=Vc2, ymin=0., ymax=1/yfelso_scale, linewidth=2, ls='dotted', color='k')
xlabel('$V$',fontsize=xylabel_meret)
ylabel(r'$p$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
ylim(0,yfelso_scale*p2)
ax = gca()
ax.yaxis.set_label_coords(-0.1, 0.65) # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_25.eps'); # Abra kimentese
figsize(xfig_meret,yfig_meret)
plot(Tlist_up,pV_up,label='$pV, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_down,pV_down,label='$pV, \,\, T<T_c$',lw=3,color='blue',ls='--')
legend(loc='lower right',fontsize=legend_meret)
annotate(r'$\mathrm{el\acute {e}rhetetlen \,\,\, tartom\acute {a}ny}$',
xy=(1.8,2.), xytext=(0.3, 2.2),fontsize=legend_meret)
annotate(r'$\mathrm{Bose-g\acute {a}z}$', xy=(1.5,2.), xytext=(2.5, 1.6),fontsize=legend_meret)
axhline(y=0.0, xmin=0, xmax = 4, linewidth=0.6, ls='dashed', color='k')
axvline(x=1.0, ymin=0.0, ymax = .30, linewidth=2, ls='dotted', color='k')
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\frac{pV}{Nk_B T_c}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,3.5)
ylim(0,3)
ax = gca()
ax.yaxis.set_label_coords(-.12, 0.53); # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_30.eps'); # Abra kimentese
figsize(xfig_meret,yfig_meret)
plot(Tlist_up,Slist_up,label='$S, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_down,Slist_down,label='$S, \,\, T<T_c$',lw=3,color='blue',ls='--')
legend(loc='lower right',fontsize=legend_meret)
axvline(x=1.0, ymin=0.0, ymax = 20, linewidth=2, ls='dotted', color='k')
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\frac{S}{N k_B}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
ax = gca()
ax.yaxis.set_label_coords(-.1, 0.53); # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_35.eps'); # Abra kimentese
# High temperature approximation
Npoint =30
tminH=2.5
tmaxH=4
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
cV_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
cV_approxH.append(3/2+tt**(-3/2)/4/sqrt(2*pi)) # c_V fajho
figsize(xfig_meret,yfig_meret)
plot(Tlist_up,cV_up,label='$C_V, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_down,cV_down,label='$C_V, \,\, T<T_c$',lw=3,color='blue',ls='--')
plot(Tlist_egybe,CVklassz,color='black',linestyle='dotted',label=r'$C_V^{\mathrm{klassz}}$')
plot(Tlist_High,cV_approxH,color='green',
lw=3,linestyle='--',
label=r'$C_{V,\mathrm{high}}(t) \approx \frac{3}{2}+\frac{t^{-3/2}}{4\sqrt{2\pi}}$')
legend(loc='lower right',fontsize=legend_meret)
annotate(r'$\frac{15\,\zeta(5/2)}{4\,\zeta(3/2)} \approx 1.926$',
xy=(1.1,1.926), xytext=(2.3, 1.94),
arrowprops=dict(color='green',width=.5),fontsize=legend_meret)
axvline(x=1.0, ymin=0.0, ymax = 20, linewidth=2, ls='dotted', color='k')
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\frac{C_V}{N k_B}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
ylim(0,2.3)
ax = gca()
ax.yaxis.set_label_coords(-.1, 0.53) # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_40.eps'); # Abra kimentese
figsize(xfig_meret,yfig_meret)
plot(Tlist_up,cV_deriv_up,label=r'$\frac{\partial c_V(T)}{\partial T}, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_down,cV_deriv_down,label=r'$\frac{\partial c_V(T)}{\partial T}, \,\, T<T_c$',lw=3,color='blue',ls='--')
legend_meret1=0.8*legend_meret
legend(loc='center right',fontsize=legend_meret1)
annotate(r'$\frac{45\,\zeta(5/2)}{8\,\zeta(3/2)} \approx 2.889 $', xy=(1.1,1.),
xytext=(1.2, 3.),fontsize=legend_meret1)
annotate(r'$\frac{9}{16}\, {\left[-\frac{3}{\pi}\, \zeta(3/2)^2+\frac{10 \zeta(5/2)}{\zeta(3/2)}\right]} \approx -0.777 $', xy=(1.1,1.),
xytext=(1.8, -0.65),fontsize=legend_meret1)
axvline(x=1.0, ymin=0.0, ymax = 20, linewidth=2, ls='dotted', color='k')
axhline(y=2.8885, xmin=0, xmax = 2, linewidth=2, ls='dashed', color='k')
axhline(y=0, xmin=0, xmax = 2, linewidth=1, ls='-', color='k')
axhline(y=-0.777261, xmin=0, xmax = 2, linewidth=2, ls='dashed', color='k')
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\frac{T_c}{Nk_{\mathrm{B}}}\, \frac{\partial c_V(T)}{\partial T}$',
fontsize=xylabel_meret,rotation ='vertical') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,4)
ylim(-1.5,3.6)
ax = gca()
ax.yaxis.set_label_coords(-.05, 0.45) # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_45.eps'); # Abra kimentese
$T <T_c$ esetén a $c_p$ fajhő nincs értelmezve, mert ekkor $p =$ állandó, és így $T=$ állandó
# High temperature approximation
Npoint =30
tminH=2.5
tmaxH=4
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
cp_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
cp_approxH.append(5/2*(1+tt**(-3/2)/2/sqrt(2*pi))) # c_p fajho
figsize(xfig_meret,yfig_meret)
plot(Tlist_up,cp_up,label='$C_p, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_egybe,Cpklassz,color='black',linestyle='dashed',label=r'$C_p^{\mathrm{klassz}}$')
plot(Tlist_High,cp_approxH,color='green', lw=3,linestyle='--',
label=r'$C_{p,\mathrm{high}}(t) \approx \frac{5}{2}\left(1+\frac{t^{-3/2}}{2\sqrt{2\pi}} \right)$')
legend(loc='upper right',fontsize=legend_meret)
annotate(r'$\frac{5}{2} $', xy=(.5,2.4), xytext=(-0.25, 2.3),fontsize=legend_meret)
axvline(x=1.0, ymin=0.0, ymax = 20, linewidth=2, ls='dotted', color='k')
axhline(y=2.5, xmin=0, xmax = 4, linewidth=2, ls='dashed', color='k')
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\frac{C_p}{N k_B}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
ylim(0,10)
ax = gca()
ax.yaxis.set_label_coords(-0.08, 0.65); # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_50.eps'); # Abra kimentese
$\kappa_S =-\frac{1}{V}\, \left. \frac{\partial V}{\partial p}\right| _{S,N}$
ahol $n=N/V$.
# High temperature approximation
Npoint =20
tminH=1.1
tmaxH=4
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
kappaS_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
kappaS_approxH.append(3/5/tt ) # kappa_S
figsize(xfig_meret,yfig_meret)
plot(Tlist_up,kappa_S_up,label=r'$\kappa_S, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_down,kappa_S_down,label=r'$\kappa_S, \,\, T<T_c$',lw=3,color='blue',ls='--')
plot(Tlist_High,kappaS_approxH,color='green', lw=3,linestyle='--',
label=r'$\kappa_{S,\mathrm{high}} \approx \frac{3}{5t}$')
legend(loc='upper right',fontsize=legend_meret)
annotate(r'$\frac{3\,\zeta(3/2)}{5\,\zeta(5/2)} \approx 1.17$', xy=(1.1,1.5),
xytext=(2.3, 1.6),fontsize=legend_meret)
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\kappa_S(T)\, n k_B T_c$',fontsize=xylabel_meret,rotation ='vertical') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
axvline(x=1.0, ymin=0.0, ymax = 20, linewidth=2, ls='dotted', color='k')
axhline(y=1.17, xmin=0, xmax = 2, linewidth=2, ls='dashed', color='k')
xlim(0,4)
ylim(0,10)
ax = gca()
ax.yaxis.set_label_coords(-.05, 0.45); # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_55.eps'); # Abra kimentese
$\kappa_T =-\frac{1}{V}\, \left. \frac{\partial V}{\partial p}\right| _{T,N}$
ahol $n= N/V$.
$T <T_c$ esetén a $c_p$ fajhő nincs értelmezve, mert ekkor $p =$ állandó, és így $T=$ állandó
# High temperature approximation
Npoint =20
tminH=1.1
tmaxH=4
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
kappaT_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
kappaT_approxH.append(1/tt ) # kappa_T
figsize(xfig_meret,yfig_meret)
kappaTklassz_fv=[1/x for x in Tlist_up] # alpha_klassz
nslice=70
kappaTklassz=kappaTklassz_fv[0:nslice+1] # az lista utolso 'nslice' darab tagjat tartja meg
Tapprox=Tlist_up[0:nslice+1] # az lista utolso 'nslice' darab tagjat tartja meg
plot(Tlist_up,kappa_T_up,label=r'$\kappa_T, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_High,kappaT_approxH,color='green', lw=3,linestyle='--',
label=r'$\kappa_{T,\mathrm{high}} \approx \frac{1}{t}$')
plot(Tapprox,kappaTklassz,color='black',linestyle='dashed',label=r'$\kappa_T^{\mathrm{klassz}}$')
legend(loc='upper right',fontsize=legend_meret)
axvline(x=1.0, ymin=0.0, ymax = 20, linewidth=2, ls='dotted', color='k')
annotate(r'$\kappa_T^{\mathrm{klassz}}=\frac{1}{T/T_c}$',
xy=(1.6,0.7), xytext=(.09, 2.),
arrowprops=dict(color='green',width=.3),fontsize=legend_meret)
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\kappa_T(T)\, n k_B T_c$',fontsize=xylabel_meret,rotation ='vertical') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,4)
ylim(0,10)
ax = gca()
ax.yaxis.set_label_coords(-.05, 0.45); # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_60.eps'); # Abra kimentese
$\alpha_T =\frac{1}{V}\, \left. \frac{\partial V}{\partial T}\right| _{p,N}$
$\alpha_T^{\mathrm{klassz}}(T) = 1/T$, magashőmérsékleti közelítés
$T <T_c$ esetén a $c_p$ fajhő nincs értelmezve, mert ekkor $p =$ állandó, és így $T=$ állandó
# High temperature approximation
Npoint =50
tminH=1.5
tmaxH=4
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
alpha_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
alpha_approxH.append(1/tt +5*tt**(-5/2)/6/sqrt(2*pi) ) # alpha
alphaklassz_fv=[1/x for x in Tlist_up] # alpha_klassz
nslice=50
alphaklassz=alphaklassz_fv[0:nslice+1] # az lista utolso 'nslice' darab tagjat tartja meg
Tapprox=Tlist_up[0:nslice+1] # az lista utolso 'nslice' darab tagjat tartja meg
figsize(xfig_meret,yfig_meret)
plot(Tlist_up,alpha_up,label=r'$\alpha_T, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_High,alpha_approxH,color='green', lw=3,linestyle='--',
label=r'$\alpha_{T,\mathrm{high}} \approx \frac{1}{t}+\frac{5 t^{-5/2}}{6\sqrt{2\pi}}$')
plot(Tapprox,alphaklassz,color='black',linestyle='dashed',label=r'$\alpha_T^{\mathrm{klassz}}$')
annotate(r'$\alpha_T^{\mathrm{klassz}}=\frac{1}{T/T_c}$',
xy=(2.2,0.4), xytext=(0.07, 0.4),
arrowprops=dict(color='green',width=.5),fontsize=legend_meret)
legend(loc='upper right',fontsize=legend_meret)
#axhline(y=1.17, xmin=0, xmax = 2, linewidth=2, ls='dashed', color='k')
axvline(x=1.0, ymin=0.0, ymax = 20, linewidth=2, ls='dotted', color='k')
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\alpha_T T_c$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,4)
ylim(0,3)
ax = gca()
ax.yaxis.set_label_coords(-.1, 0.52); # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_65.eps'); # Abra kimentese
$T <T_c$ esetén a $c_p$ fajhő nincs értelmezve, mert ekkor $p =$ állandó, és így $T=$ állandó
# High temperature approximation
Npoint =20
tminH=2.
tmaxH=4
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
cp_cV_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
cp_cV_approxH.append(5/3*(1+tt**(-3/2)/3/sqrt(2*pi))) # c_p/c_V fajho arany
figsize(xfig_meret,yfig_meret)
plot(Tlist_up,cp_cV_up,label=r'$\frac{C_p}{C_V}, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_High,cp_cV_approxH,color='green', lw=3,linestyle='--',
label=r'$\frac{C_p}{C_V} \approx \frac{5}{3}\left(1+\frac{t^{-3/2}}{3\sqrt{2\pi}} \right)$')
legend(loc='upper right',fontsize=legend_meret)
axhline(y=1.666, xmin=0, xmax = 2, linewidth=2, ls='dashed', color='k')
axvline(x=1.0, ymin=0.0, ymax = 20, linewidth=2, ls='dotted', color='k')
annotate(r'$\frac{5}{3}$', xy=(1.1,1.926),
xytext=(-.25, 1.5),fontsize=legend_meret)
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\frac{C_p}{C_V}$',fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
xlim(0,4)
ylim(0,6)
ax = gca()
ax.yaxis.set_label_coords(-.07, 0.52) # ylabel position
grid()
#avefig('Fig_Bose_gas/fig_Bose-gaz_70.eps'); # Abra kimentese
$v_{\mathrm{hang}}(T) =\sqrt{\left. \frac{\partial p}{\partial \varrho}\right|_{S,N}} = \sqrt{\frac{V}{m N}\, \frac{1}{\kappa_S}}$, ahol $\varrho = m N/V$ a tömegsűrűség.
# High temperature approximation
Npoint =50
tminH=2.5
tmaxH=4
Tlist_High=linspace(tminH,tmaxH,Npoint) #mintavételezési pontok legyártása
vhang_approxH=[]
for i in range(0,len(Tlist_High)):
tt=Tlist_High[i]
vhang_approxH.append(sqrt(10/3/pi)/12*(-1/tt + 12* sqrt(tt*pi/2))) # vhang
figsize(xfig_meret,yfig_meret)
plot(Tlist_up,vhang_up,label=r'$v_{\mathrm{hang}}, \,\, T>T_c$',lw=3,color='red')
plot(Tlist_down,vhang_down,label=r'$v_{\mathrm{hang}}, \,\, T<T_c$',lw=3,color='blue',ls='--')
plot(Tlist_High,vhang_approxH,color='green', lw=3,linestyle='--',
label=r'$v_{\mathrm{hang,high}} \approx \sqrt{\frac{5 t}{3}}- \frac{1}{6}\, \sqrt{\frac{5}{6\pi}}\, \frac{1}{t}$')
legend(loc='upper left',fontsize=legend_meret)
legend_meret1=0.8 * legend_meret
annotate(r'$\sqrt{\frac{5\,\zeta(5/2)}{3\,\zeta(3/2)}} \approx 0.925$', xy=(1.1,1.),
xytext=(2., 1.),fontsize=legend_meret1)
axvline(x=1.0, ymin=0.0, ymax = 20, linewidth=2, ls='dotted', color='k')
axhline(y=0.925, xmin=0, xmax = 2, linewidth=2, ls='dashed', color='k')
xlabel('${T}/{T_c}$',fontsize=xylabel_meret)
ylabel(r'$\frac{v(T)}{\sqrt{k_{\mathrm{B}T_c}}}$',
fontsize=xylabel_meret,rotation ='horizontal') # Kell a 'r' az elejen!!!!
xticks(fontsize=xyticks_meret)
yticks(fontsize=xyticks_meret);
ylim(0,2.7)
ax = gca()
ax.yaxis.set_label_coords(-.12, 0.56) # ylabel position
grid()
#savefig('Fig_Bose_gas/fig_Bose-gaz_75.eps'); # Abra kimentese
R. K. Pathria: Statistical Mechanics, 2nd Edition, 1996, Bunerworth-Heinemann Linacre House
Linda E. Reichl: A Modern Course in Statistical Physics 2rd Edition, 1998, Wiley-VCH
Franz Schwabl: Statistical Mechanics, 2000, Springer-Verlag, Berlin
K. Huang: Statistical Mechanics, 2nd Edition, 1987, John Wiley & Sons